home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 April / CHIP 1996 aprilis (CD06).zip / CHIP_CD06.ISO / hypertxt.arj / 9410 / FLIGHT.CD < prev    next >
Text File  |  1994-11-23  |  13KB  |  216 lines

  1.           @VVirtual Reality -- házilag@N
  2.  
  3.           @VA fantázia szárnyalása...@N
  4.  
  5.           ...   avagy   hogyan   írjunk  repülésszimulátort.  Manapság
  6.           Magyarországon   elterjedt   szokás   külföldrôl   katalógus
  7.           alapján   vásárolni   számítástechnikai   könyveket.   Ennek
  8.           egyszerû  oka,  hogy  egyetlen  forgalmazó  sem képes minden
  9.           könyvbôl   egy-egy  példányt  tartani,  hiszen  ez  jelentôs
  10.           tôkelekötést igényelne.
  11.  
  12.  
  13.  
  14.           Jó   esetben   a   vevô,  megrendelô  legalább  egy  eredeti
  15.           könyvkatalógusból  választhat  (amelyben  rövid ismertetô is
  16.           van  a  könyvekrôl),  de  a  legtöbbször  csak  egy egyszerû
  17.           listája  van. A gyanútlan vevô e lista alapján megrendel egy
  18.           könyvet,  melyrôl  a  címe  alapján  azt hiszi, hogy a könyv
  19.           éppen  neki  szól. Pár hetes, esetleg hónapos várakozás után
  20.           megjön  az  értesítés,  félhavi  fizetésével együtt jelenjen
  21.           meg,    átveheti    a    megrendelt    könyvet.    A   buzgó
  22.           számítástechnikus  kifizeti  álmai  könyvét  (mit is tehetne
  23.           mást,  hiszen aláírása ott szerepel a megrendelôn), és már a
  24.           metrón   (buszon,   villamoson)   elkezdi  tanulmányozni  az
  25.           áhított   mûvet.   Bár  ne  tenné.  ùgy  legalább  nem  érné
  26.           csalódás.  Az  esetek  nagy  részében  a  könyvek  nem arról
  27.           szólnak,  és  nem  úgy, ahogy azt a megrendelô a cím alapján
  28.           gondolta.   Az   angol  nyelvû  könyvek  zömét  ugyanis  nem
  29.           programozóknak  írták,  hanem  átlag  amerikaiaknak,  akik a
  30.           könyvbôl    nem    azt    akarják    megtudni,    hogy   egy
  31.           repülésszimulátor     megírásához     milyen     matematikai
  32.           algoritmusok   szükségesek,   hanem   azt,   hogy   az   XYZ
  33.           játékprogramban  mely  gombokkal  lehet  lôni, bombázni stb.
  34.           Ezért  ha  nem  körültekintôen  választjuk  ki,  hogy milyen
  35.           jellegû   könyvet   rendeljünk,  könnyen  abba  a  helyzetbe
  36.           kerülhetünk,  hogy egy program leírását kapjuk meg, amihez a
  37.           programot   még   meg   kell   vennünk.  Mindezt  pár  tucat
  38.           dollárért.  A  programot  persze  el  is  lophatjuk  (bár ez
  39.           törvénybe  ütközô),  de  sajnos  a könyv árát már nem kapjuk
  40.           vissza.
  41.  
  42.  
  43.                            @VZavaros algoritmusok@N
  44.  
  45.           Mint  a  számítógépes  grafika  rajongója,  a  fenti módszer
  46.           alkalmazásával   már   jónéhány   abszolút   használhatatlan
  47.           könyvet  sikerült  beszereznem.  E könyvek egy része egy-egy
  48.           program   leírását   tartalmazta,   mások   azt   állították
  49.           magukról,  hogy  bevezetik az olvasót a számítógépes grafika
  50.           (2D,  3D stb.) rejtelmeibe. A könyvek ez az utóbbi csoportja
  51.           valóban   tett  valamit  a  kitûzött  cél  érdekében,  de  a
  52.           végeredmény  sokszor  elkeserítô  volt.  A  könyvek  ugyanis
  53.           magyarázatok  helyett  programlistákat  közöltek. Logikailag
  54.           hibás   kiindulásból   rossz  algoritmusokat  hoztak  létre,
  55.           amelyek   ugyan   a  könyvben  szereplô  példákban  helyesen
  56.           mûködtek,  de  minden másra használhatatlanok voltak. Persze
  57.           ha  semmit  sem  magyarázunk  meg,  akkor  azt  sem  kell az
  58.           olvasóval   közölni,   hogy   az  illetô  algoritmus  milyen
  59.           korlátok között mûködik...
  60.  
  61.           Az  elôzô  esetbôl  tanulva  már  nem  rendelek  meg könyvet
  62.           anélkül,  hogy elôtte meg ne nézném (valahol, valakinél, aki
  63.           volt   olyan  balga,  hogy  megvette).  îgy  került  kezembe
  64.           Christopher   Lampton   Flights   of   Fantasy  (A  fantázia
  65.           szárnyalása)   címû   könyve,   mely   már   elsô  átnézésre
  66.           meglepetést  okozott.  A  könyv  ugyanis  valóban arról szól
  67.           amit az alcíme ígér: 3-D videojátékok programozása C++-ban.
  68.  
  69.  
  70.                          @VMatematika a gyakorlatban@N
  71.  
  72.           Lampton  könyve  azoknak  szól,  akik szeretnék megismerni a
  73.           számítógépes  grafika  alapjait, nemcsak kész programokat és
  74.           rutinokat   felhasználni,   hanem   szeretnék  megérteni  az
  75.           algoritmusok  mûködési  elvét  is.  A  könyv  megismertet  a
  76.           számítógépes  grafikában  használt matematikai módszerekkel.
  77.           Nem   riad  vissza  olyan  fogalmak  használatától,  amelyek
  78.           meghaladják  a  középiskolában  tanultakat  (mint  például a
  79.           mátrixok  fogalma,  mátrix-  és vektormûveletek, fraktálok).
  80.           Ennek   ellenére   nem   merül   el   az  elméleti  kérdések
  81.           tárgyalásában,   hanem   az   alapfogalmak  tisztázása  után
  82.           konkrét,    mûködôképes    programokon   mutatja   be   azok
  83.           használatát.  Minden  matematikai  fogalom  bevezetése  után
  84.           egyszerû,  különálló  kis  programok segítik a fogalmak jobb
  85.           megértését  és  azok  használatát  a  programokban.  A könyv
  86.           megértése    nem   kíván   egyetemi   végzettséget,   de   a
  87.           középiskolai  matematika anyag ismerete, és némi fogékonyság
  88.           a matematika iránt szükséges.
  89.  
  90.           A  könyvben  ismertetett  algoritmusok  és  a  programok egy
  91.           része   gépfüggetlen.   A  hardver  teljes  tudását  azonban
  92.           általában  csak  assembly  programokból  tudjuk kihasználni.
  93.           Olyan   programoknál   --   mint   a   könyvben  ismertetett
  94.           szimulátor   is   --  amelyek  a  teljesítôképesség  határán
  95.           használják  a  hardvert,  elengedhetetlen  assembly  rutinok
  96.           használata.  Ezek  sajnos gépfüggôvé teszik a programot. îgy
  97.           szimulátorunk  csak  IBM  PC,  vagy azzal kompatibilis gépen
  98.           futtatható.  A program nagyrésze C nyelven íródott, a szerzô
  99.           a  fordításhoz Borland C++-t használt. A programban használt
  100.           grafikus  rutinok  assemblyben  íródtak.  Mivel  a  grafikus
  101.           felbontás  nagyban  befolyásolja a rajzoláshoz szükséges CPU
  102.           idôt,  a  szimulátor  320x200-as  felbontásban dolgozik, 256
  103.           színnel.   A   könyv  foglalkozik  a  VGA  kártyák  grafikus
  104.           üzemmódjainak  beállításával  és  használatával, különösen a
  105.           programban  használt 320x200-as móddal. Részletesen leírja a
  106.           videomemória  használatát,  az  egyes  képpontok címzését, a
  107.           színpaletta  programozását  és a képek megjelenítését. Külön
  108.           fejezetben  foglalkozik  2D alakzatok mozgatásával, a sprite
  109.           technikával.
  110.  
  111.           A   számítógépes   grafikában   jelentôs   szerepe   van  az
  112.           egyenesek,  sokszögek  és  kitöltött sokszögek rajzolásának.
  113.           Az   1960-as  évek  elejétôl  --  amikor  az  elsô  grafikus
  114.           programok   születtek  --  számos  megoldás  született  ezen
  115.           alakzatok  hatékony, gyors rajzolására. A könyv ezek közül a
  116.           legelterjedtebbet,  a  Bresenham  egyenesrajzoló algoritmust
  117.           ismerteti.  A poligonrajzoló és kitöltô algoritmusokat ebbôl
  118.           származtatja.
  119.  
  120.           Åttérve   a   háromdimenziós  alakzatok  megjelenítésére,  a
  121.           szerzô  elôször  a  testek  háromdimenziós  leírásával  és a
  122.           koordináták   tárolásával   foglalkozik.   Ezután  bemutatja
  123.           azokat   a   matematikai  eszközöket,  amelyek  segítségével
  124.           elôállíthatjuk ezen tárgyak kétdimenziós képét.
  125.  
  126.           A    következô    lépésben   megismerkedhetünk   egy   olyan
  127.           algoritmussal,  amely  lehetôvé  teszi  a  takart  felületek
  128.           elhagyását.  Ha  ugyanis a valóságban egy tárgy közelebb van
  129.           hozzánk,  mint  egy másik, akkor elôfordul, hogy a közelebbi
  130.           részben,   vagy   teljes  egészében  eltakarja  a  távolabbi
  131.           tárgyat.  Egy  olyan  szimulátornak, amely élethû képet akar
  132.           elôállítani,  figyelembe  kell  vennie ezeket a takarásokat.
  133.           Sajnos  a  takart  felületek  felismerése  és  elhagyása sok
  134.           számítással   jár.  îgy  minél  jobb  algoritmust  találunk,
  135.           programunk  annál  lassabb  lesz. Ezért, bár a könyv bemutat
  136.           egy   hibátlan   algoritmust  --  ez  az  úgynevezett  festô
  137.           algoritmus    --   a   végsô   szimulátor   programban   egy
  138.           egyszerûsített  változat  szerepel,  amely nem mindig ismeri
  139.           fel  helyesen  a  takart  felületeket,  de elég gyors ahhoz,
  140.           hogy a szimulátor élvezhetô legyen.
  141.  
  142.  
  143.                             @VTeljes vértezetben@N
  144.  
  145.           Bár  a  látkép  generálása  a  leglátványosabb, mégis csupán
  146.           csak  egy  része  a  teljes  programnak.  Mivel  a könyv nem
  147.           számítógépes  grafikát ígér, hanem egy teljes szimulátort, a
  148.           szerzô  nem  feledkezett  meg  a program többi részérôl sem.
  149.           îgy   egy-egy   fejezetet   szentel   a  programmal  történô
  150.           párbeszédnek,  a  billentyûzet  és a botkormány kezelésének,
  151.           továbbá a hangkártya programozásának.
  152.  
  153.           A   repülésszimulátorok   talán   legtitokzatosabb  része  a
  154.           repülés   dinamikai  egyenleteinek  megoldása.  Ennek  során
  155.           határozzák   meg  a  repülôgép  sebességébôl,  a  vezérsíkok
  156.           állásából,  külsô  hatásokból  (például  szél)  a  repülôgép
  157.           mozgását.   Professzionális   szimulátoroknál   e  feladatra
  158.           legalább  akkora,  ha  nem nagyobb gondot fordítanak, mint a
  159.           látványgenerálásra.  Mivel  a  mi  szimulátorunk csak játék,
  160.           nem  fogjuk  a  dinamikai  egyenleteket  megoldani.  (Ez még
  161.           szakember  számára  sem könnyû feladat.) A könyv megelégszik
  162.           az   alapvetô   fogalmak,  mint  sebesség,  bólintás,  dôlés
  163.           tisztázásával.  Ezekbôl  a  repülô  mozgását a legegyszerûbb
  164.           módon határozza meg.
  165.  
  166.           Csodákat   persze   Lampton   sem  mûvel.  A  program,  amit
  167.           közzétesz,  vagy  amit  a  könyv alapján írhatunk, nem fogja
  168.           áthágni  a  PC-k korlátait. Ne számítsunk arra, hogy a könyv
  169.           elolvasása,  megértése után olyan programokat írhatunk, mint
  170.           amilyeneket  a  PC-k nagyteljesítményû testvérein láthatunk.
  171.           Ha   Borland   C   helyett  32  bites  Watcom  C++  fordítót
  172.           használunk,  mintegy  20-30%-os  sebességnövekedést érhetünk
  173.           el.  A  sebességnövelés  másik  módja speciális videokártyák
  174.           használata.   E   3D  grafikát  támogató  kártyák  általában
  175.           tartalmaznak  egy  processzort  (például  Intel  860), amely
  176.           hardverrel  végzi  a  sokszögrajzolást  és valamilyen takart
  177.           felület    algoritmust.    E   kártyák   ára   azonban   már
  178.           meghaladhatja  számítógépünk  árát. Ráadásul néha nem elég a
  179.           kártyát  magát  megvenni,  hanem ha programozni akarjuk, úgy
  180.           fejlesztôrendszert is vennünk kell hozzá.
  181.  
  182.  
  183.                             @VA jövô lehetôségei@N
  184.  
  185.           A   háromdimeziós   grafika  --  bár  elméleti  alapjai  már
  186.           ismertek  --  napjaink  egyik  jelentôsen  fejlôdô  ágazata.
  187.           Számos   olyan   rendszer   létezik,   amelyek  segítségével
  188.           háromdimenziós    látványgenerátorokat    hozhatunk   létre.
  189.           Ilyenek  a  RenderMan, a PHIGS és az OpenGL. Várható, hogy a
  190.           közeljövôben  e  rendszerek  a  PC-ken  is  megjelennek,  és
  191.           hardver   támogatást   fognak  élvezni.  Feltehetô,  hogy  a
  192.           Windows   valamelyik  következô  változata  már  tartalmazni
  193.           fogja  az  OpenGL  leírónyelvet.  Ha  ez  bekövetkezik,  úgy
  194.           hamarosan    az    intelligens    VGA   kártyák   (amit   ma
  195.           Windows-gyorsítónak   hívunk)   már   támogatni   fogják   a
  196.           háromdimenziós  grafikát.  Addig  is mindenki saját kedve és
  197.           pénztárcája szerint próbálgathatja a 3D megjelenítést.
  198.  
  199.           @KSteiner András@N
  200.  
  201.  
  202.           ┌──────────────────────────────────────────────────────────┐
  203.           │ A  könyv,  floppymellékletén  a  forrásprogramokkal és a │▒
  204.           │ lefordított   repülésszimulátorral   szerkesztôségünkben │▒
  205.           │ megtekinthetô illetve megrendelhetô, ára 2475 Ft.        │▒
  206.           └──────────────────────────────────────────────────────────┘▒
  207.            ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  208.  
  209.  
  210. @<9410\FLIGHT1.GIF>Drótvázas testforgatás demó@N
  211.  
  212. @<9410\FLIGHT2.GIF>Felszállás!@N
  213.  
  214. @<9410\FLIGHT3.GIF>Takart felület demó@N
  215.  
  216. @<9410\FLIGHT4.GIF>Egymást takaró testek mozgásban@N